Content delivery systems, such as for multimedia conferencing applications, allow two or more remote parties (e.g., individuals or co-located groups of people) to see each other as well as speak to each other over a network such as the Internet. In a typical multimedia conferencing scenario, every party wants to view audio/video from all other parties and is a source of its own audio/video stream. Because of the substantial time and cost savings provided by multimedia conferencing, the use of such technology has significantly grown and will continue to grow in popularity.
One typical multimedia conferencing technology employs a centralized multipoint control unit (MCU) that receives an audio/video stream from each participant and distributes the streams to each other participant. However, an MCU is expensive, and needs to be able to handle a high load. Further, MCUs are relatively limited, in that they are not very scalable as the number of parties increases.
A multimedia conferencing technology that does not need to use an MCU is based on peer communication, e.g., where each source transmits to every other party, sometimes referred to as simulcast. However, as the group size increases, video quality deteriorates due to peer uplink bandwidth constraints.
Tree-based multiparty conferencing is another solution, in which peers assist in forwarding packets to others over multicast trees; an MCU is not required, but can assist in forwarding packets. In general, the nodes form trees of links, (e.g., three multiparty conferencing nodes form nine depth one and depth two trees, with one depth one tree per source node and two depth two tree per source node, where depth one has no forwarding node, and depth two has one forwarding node), and the source node adjusts the tree rates in response to queuing delays. While peer-assisted multicasting provides benefits over other technologies, there are a number of drawbacks with this solution, including that a full mesh between parties is assumed, however some of the links of the full mesh may break down in practice. Further, there is no redundancy, whereby a packet lost in a tree means that the downstream receiver cannot get an event trigger to forward a packet. There are other drawbacks as well, e.g., the set of possible trees have a fixed structure that may not be optimized for the underlying network constraints, there is a fan-out delay, which increases for large party multiparty conferencing, and so forth.
What is needed for multiparty conferencing is a peer-assisted real-time transport solution that works well under arbitrary network conditions and provides desirable quality of service (QoS), even under varying network dynamics.